package com.skh.stack;

import java.util.Arrays;

/**
 * 下一个较大的元素II
 * created by skh on 2019/7/1
 */
public class NextElement {

	/*
	现在有一个数组，请找出数组中每个元素的后面比它大的最小的元素，若不存在则为-1。

	给定一个int数组A及数组的大小n，请返回每个元素所求的值组成的数组。保证A中元素为正整数，且n小于等于1000。

	测试样例：
	[11,13,10,5,12,21,3],7
	[12,21,12,12,21,-1,-1]
	 */

	public int[] findNext(int[] A, int n) {
		int[] result = new int[n];

		for (int i = 0; i < A.length; i++) {
			int min = -1;
			for (int j = i + 1; j < A.length; j++) {
				if (A[j] > A[i]) {
					if (min == -1) {
						min = A[j];
						continue;
					}
					if (A[j] < min) {
						min = A[j];
					}
				}
			}

			result[i] = min;
		}

		return result;
	}

	public static void main(String[] args) {
		NextElement nextElement = new NextElement();
		int[] A = {11,13,10,5,12,21,3};
		int[] next = nextElement.findNext(A, 7);
		System.out.println("Arrays.toString(next) = " + Arrays.toString(next));


	}
}
